﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entities.Enumeraciones;
using Entities;

public partial class SiteMaster : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        navMenu.Groups[0].Visible = false;
        navMenu.Groups[1].Visible = false;
        navMenu.Groups[2].Visible = false;
        navMenu.Groups[3].Visible = false;
        navMenu.Groups[4].Visible = false;
        if (Session["Email"] != null)
        {
            lblSalir.Visible = true;
            lblUsuario.Text = Session["Email"].ToString();
            ConfigurarMenu((EnumUsuarioTipo)Session["UsuarioTipo"]);
            if (Session["IndiceGrupoActivo"] != null)
                navMenu.Groups[int.Parse(Session["IndiceGrupoActivo"].ToString())].Expanded = true;
        }
        else
        {
            lblSalir.Visible = false;
        }
    }

    public string nombreUsuarioText;

    public string DevolvernombreUsuario()
    {
        return lblUsuario.Value.ToString();
    }

    //Si se registro correctamente habilito en campo nombre de usuario y salir
    //Configuro los permisos del menú segun el tipo de usuario que ingreso

    public void UsuarioRegistrado(string Email)
    {
        if (Email != null)
        {
            Session["Email"] = Email;
            Usuario oUsuario = Usuario.BuscarUsuarioPorEmail(Email);
            EnumUsuarioTipo enumUsuarioTipo = (EnumUsuarioTipo)oUsuario.UsuarioTipo.IDUsuarioTipo;
            Session["UsuarioTipo"] = enumUsuarioTipo;
            ConfigurarMenu(enumUsuarioTipo);
            lblUsuario.Visible = true;
            lblUsuario.Text = Email;
            lblUsuario.Value = Email;
            lblSalir.Visible = true;
        }



    }

    private void ConfigurarMenu(Entities.Enumeraciones.EnumUsuarioTipo UsuarioTipo)
    {
        //Metodo que configura los grupos del menu dependiedo el tipo de usuario
        //oculto todos los Grupo primero
        //navMenu.Visible = true;
        //foreach (DevExpress.Web.ASPxNavBar.NavBarGroup oGrupo in navMenu.Groups)
        //{
        //    if (oGrupo.Visible == true)
        //        oGrupo.Visible = false;
        //}

        //Luego dependiendo el tipo de usuario habilito los difrentes menús
        switch (UsuarioTipo)
        {
            case EnumUsuarioTipo.Admin:
                //Administración
                navMenu.Groups[0].Visible = true;
                //Sistema
                navMenu.Groups[1].Visible = true;
                break;
            case EnumUsuarioTipo.EncargadoNegocio:
                //Mi Cuenta
                navMenu.Groups[2].Visible = true;
                //Negocio
                navMenu.Groups[3].Visible = true;
                //Productos
                navMenu.Groups[4].Visible = true;
                //Categorias
                navMenu.Groups[5].Visible = false;
                break;
            case EnumUsuarioTipo.Vendedor:
                //Mi Cuenta
                navMenu.Groups[2].Visible = true;
                //Categorias
                navMenu.Groups[5].Visible = false;
                break;
            case EnumUsuarioTipo.Repartidor:
                //Mi Cuenta
                navMenu.Groups[2].Visible = true;
                //Categorias
                navMenu.Groups[5].Visible = false;
                break;
            case EnumUsuarioTipo.Cliente:
                //Mi Cuenta
                navMenu.Groups[2].Visible = true;
                navMenu.Groups[2].Items[2].Visible = true;

                //Categorias
                //navMenu.Groups[5].Visible = true;
                break;
        }
    }

    protected void navMenu_ItemClick(object source, DevExpress.Web.ASPxNavBar.NavBarItemEventArgs e)
    {

        //Guardamos en session el índice del grupo activo
        Session["IndiceGrupoActivo"] = e.Item.Group.Index;
        #region Administrador
        if (e.Item.Name == "Negocios")
        {
            Response.Redirect("pNegocios.aspx");
        }

        if (e.Item.Name == "Planes de Servicio")
        {
            Response.Redirect("pPlanesDeServicio.aspx");
        }

        if (e.Item.Name == "Categorias")
        {
            Response.Redirect("pCategorias.aspx");
        }

        if (e.Item.Name == "SubCategorias")
        {
            Response.Redirect("pSubCategorias.aspx");
        }
        #endregion

        #region Negocio
        //Buscamos el id del negocio
        Negocio oNegocio = Negocio.BuscarUnoPosUsuario(lblUsuario.Text);
        if (e.Item.Name == "DatosNegocio")
        {
            Response.Redirect("pNegocioModificarDatos.aspx?IDNegocio=" + oNegocio.IDNegocio.ToString());
        }

        if (e.Item.Name == "Usuarios")
        {
            Response.Redirect("pNegocioUsuario.aspx?IDNegocio=" + oNegocio.IDNegocio.ToString());
        }


        if (e.Item.Name == "Horarios")
        {
            Response.Redirect("pNegocioHorariosAtencion.aspx?IDNegocio=" + oNegocio.IDNegocio.ToString());
        }

        if (e.Item.Name == "Logo")
        {
            Response.Redirect(String.Format("pNegocioCambiarImagen.aspx?IDNegocio={0}&Imagen=1", oNegocio.IDNegocio));
        }

        if (e.Item.Name == "Plan")
        {
            Response.Redirect(String.Format("pNegocioCambiarImagen.aspx?IDNegocio={0}&Imagen=0", oNegocio.IDNegocio));
        }

        if (e.Item.Name == "Habilitar")
        {
            Response.Redirect(String.Format("pNegocioCambiarEstadoPropio.aspx?IDNegocio={0}&IDEstadoNuevo=3", oNegocio.IDNegocio));
        }

        if (e.Item.Name == "Desabilitar")
        {
            Response.Redirect(String.Format("pNegocioCambiarEstadoPropio.aspx?IDNegocio={0}&IDEstadoNuevo=4", oNegocio.IDNegocio));
        }

        #endregion

        #region MisDatos
        if (e.Item.Name == "MisDatos")
        {
            if (oNegocio != null)
                Response.Redirect(String.Format("pUsuarioModificarDatos.aspx?IDNegocio={0}&Email={1}&Regresa=DefaultNegocio", oNegocio.IDNegocio, lblUsuario.Text));
            else
                Response.Redirect(String.Format("pUsuarioClienteModificarDatos.aspx?Email={0}", lblUsuario.Text));
        }

        if (e.Item.Name == "CambioClave")
        {
            if (oNegocio != null)
                Response.Redirect(String.Format("pUsuarioCambioClave.aspx?IDNegocio={0}&Email={1}&Regresa=DefaultNegocio", oNegocio.IDNegocio, lblUsuario.Text));
            else
                Response.Redirect(String.Format("pUsuarioClienteCambioClave.aspx?Email={0}", lblUsuario.Text));
        }

        if (e.Item.Name == "CerrarCuenta")
        {
            Response.Redirect(String.Format("pUsuarioClienteCerrarCuenta.aspx?Email={0}", lblUsuario.Text));
        }


        #endregion

        #region Productos
        if (e.Item.Name == "MisProductos")
        {
            Response.Redirect("pProductos.aspx?IDNegocio=" + oNegocio.IDNegocio.ToString());
        }

        if (e.Item.Name == "ProductosPublicados")
        {
            Response.Redirect("pPublicaciones.aspx?IDNegocio=" + oNegocio.IDNegocio.ToString());
        }

        #endregion
    }
}
